import { Component, OnInit, Input, OnDestroy } from '@angular/core';
import { AppGlobalService } from "./../../shared/service/app-global.service";
import { MessageService } from 'src/app/shared/service/message.service';
import { HttpService } from 'src/app/shared/service/http.service';
import { ModalController } from '@ionic/angular';
import { Subscription } from "rxjs";

@Component({
  selector: 'app-decoration-companies',
  templateUrl: './decoration-companies.component.html',
  styleUrls: ['./decoration-companies.component.scss'],
})
export class DecorationCompaniesComponent implements OnInit, OnDestroy {
  // 组件数据
  @Input() tagData: any = {};
  // test: any = {
  //   type: "tag",
  //   style: "decorateListTag",
  //   name: null,
  //   linearLayout: "body",
  //   data: {
  //     data: [
  //       {
  //         secondRowRight: {
  //           textLabel: {
  //             cssStyle: "color:#858894;font-size:0.75rem",
  //             label: "1-2万"
  //           },
  //           text: "均价"
  //         },
  //         thirdRowLeft: {
  //           labelList: {
  //             label: "免费上门;无转包;全包装饰;无增项;"
  //           }
  //         },
  //         imageUrl: "http://zeno-img.oss-cn-shenzhen.aliyuncs.com/fil03fd60b0ec0ee4f85a33fb6c.jpg",
  //         link: {
  //           type: "page",
  //           params: {
  //             opportunity_id: "5e0feb268dbf8900013f14f1",
  //             customer_id: "5e0feb258dbf8900013f14f0"
  //           },
  //           target: 117249
  //         },
  //         title: {
  //           firstText: {
  //             label: "出租|宝安区中心区咖啡馆"
  //           },
  //           authTag: {
  //             label: "认证",
  //             ifauth: true
  //           }
  //         },
  //         secondRowLeft: {
  //           text: "餐饮美食"
  //         }
  //       },
  //       {
  //         secondRowRight: {
  //           textLabel: {
  //             cssStyle: "color:#858894;font-size:0.75rem",
  //             label: "1-2万"
  //           },
  //           text: "均价"
  //         },
  //         thirdRowLeft: {
  //           labelList: {
  //             label: "免费上门;无转包"
  //           }
  //         },
  //         imageUrl: "https://pic8.58cdn.com.cn/p1/big/n_v2ce9158de48a941d19d093c094292de27.jpg",
  //         link: {
  //           type: "page",
  //           params: {
  //             opportunity_id: "5e05bb32a35a7b00014d875e",
  //             customer_id: "5e05bb31a35a7b00014d875d"
  //           },
  //           target: 117249
  //         },
  //         title: {
  //           firstText: {
  //             label: "(转让) 港货便利店临街旺铺转让"
  //           },
  //           authTag: {
  //             label: "认证",
  //             ifauth: true
  //           }
  //         },
  //         secondRowLeft: {
  //           text: "餐饮美食"
  //         }
  //       }
  //     ],
  //     submit: {
  //       content: {
  //         business_plugin_id: "1,2",
  //         pageNo: 1
  //       },
  //       id: "c4e6765b-9fb6-438b-af88-2c97ee6aed88"
  //     }
  //   },
  //   pageSize: 2,
  //   pageNo: 1,
  //   pageTotal: 4
  // };
  // 声明订阅对象
  subscription: Subscription = null;

  listData: any;

  // 筛选及页面数据参数
  params: any = {};

  // 当前页数，默认1
  pageNo = 1;

  // size
  pageSize: number;

  // 数量
  pageTotal: number;

  constructor(
    private appGlobalService: AppGlobalService,
    private message: MessageService,
    private http: HttpService,
    private modalController: ModalController) { }

  ngOnInit() {
    // 初始化参数
    this.params = this.tagData.data.submit;
    this.params.sessionId = localStorage.getItem('sessionId');

    this.listData = this.tagData.data;

    this.pageSize = this.tagData.pageSize;
    this.pageTotal = this.tagData.pageTotal;
    console.log(this.tagData, this.pageTotal, this.pageSize);

    if (!this.subscription) {
      // 获取筛选参数
      this.subscription = this.message.getMessage().subscribe(param => {
        console.log(param);
        if (param) {
          // // 重置当前页数
          this.pageNo = 1;
          // 参数
          this.params.content = param;
          // 页面数据参数
          this.params['content'].pageNo = this.pageNo;
          // 请求获取新数据
          this.http.post('application/submit', this.params, res => {
            // 请求数据成功
            if (res.success && res.data.data && res.data.data.length > 0) {
              // 筛选数据
              this.listData.data = res.data.data;
              // 自动回到顶部
              setTimeout(() => {
                const el = document.getElementById('ContractListFilterComponent0');
                el.scrollIntoView(true);
              }, 200);
            } else {
              this.listData.data = [];
              // 请求数据失败
              this.appGlobalService.showToast(res.message, 2000, 'middle');
            }
          },
            err => {
              // 请求数据失败
              this.appGlobalService.showToast(err.message, 2000, 'middle');
            });
        }
      });
    }
  }

  ngOnDestroy(): void {
    // 组件生命周期结束的时候，注销
    this.subscription.unsubscribe();
  }


  /**
   * 列表跳转
   * @param {*} obj 跳转对象
   * @memberof StoreListComponent
   */

  clickLink(obj) {
    console.log(obj);
    if (!obj) {
      console.log('没有返回link-target');
    }
    const pageParams = {
      pageId: obj.target,
      params: obj.params,
      sessionId: localStorage.getItem('sessionId')
    };
    this.appGlobalService.goToForward(pageParams);
  }

  /**
   * TODO: 下拉刷新，保留
   *
   * @param {*} event
   * @memberof
   */
  doRefresh(event) {
  }

  /**
   * 上滑加载
   *
   * @param {*} event
   * @memberof
   */
  loadMoreData(event) {
    if (this.pageNo >= this.pageTotal) {
      // this.appGlobalService.showToast('没有数据了...', 1000, 'middle');
      // event.complete();
      event.target.disable = true;
      return;
    }
    // // 请求下一个页面
    this.pageNo = this.pageNo + 1;
    // // 参数
    this.params.content.pageNo = this.pageNo;
    // 请求获取新数据
    this.http.post('application/submit', this.params, res => {

      // 请求数据成功
      if (res.success) {
        const resList = res.data.data;
        // 追加返回数据
        if (resList && resList.length > 0 && JSON.stringify(resList[0]) !== "{}") {
          // 追加数据
          resList.map(item => {
            this.listData.data.push(item);
          });
        } else {
          // 没有数据了
          // this.appGlobalService.showToast('没有数据了...', 1000, 'middle');
          event.target.disable = true;
        }
      } else {
        // 请求失败，更新当前页数
        this.pageNo = this.pageNo - 1;
        // 请求数据失败
        this.appGlobalService.showToast(res.message, 2000, 'middle');
      }
      event.target.complete();

    }, err => {
      // 请求失败，更新当前页数
      this.pageNo = this.pageNo - 1;
      // 请求数据失败
      this.appGlobalService.showToast(err.message, 2000, 'middle');
      event.target.disable = true;

    });

  }

}
